class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int i=0,j=nums.size()-1;//左右子数组的边界
        
        while(i<=j)
        {
            int m=(i+j)/2;//二分查找
            if(nums[m]==m)
            {
                //缺失值一定在右子数组
                i=m+1;
            }
            else
            {
                //缺失值一定在左子数组
                j=m-1;
            }
        }
        //此时出循环i已挪到右子数组的首元素
        return i;
    }
};